| автор перевода - Штрек - flash-club.ru | Предыдущая | Следующая | Оглавление |
Flash Player 5.
expression1>>expression2
expression1 Число, или выражение, которое нужно
сместить вправо.
expression2 Число, или выражение, конвертируемое
в целое число от 0 до 31.
32-битное целое число.
Оператор (побитовый), конвертирует expression1 и expression2
в 32-битное целое число и смещает все биты в expression1 вправо
на число разрядов, указанное целым числом, результирующим от преобразования
expression2. Биты, смещённые вправо, игнорируются. Чтобы
сохранить знак изначального выражения expression, биты
слева заполняются нулями, если наиболее значимый бит (самый левый) выражения
expression1 будет 0, или заполняются единицами, если наиболее
значимый бит будет 1. Смещение значения вправо на одну позицию эквивалентно
делению на 2, пренебрегая остатком.
Числа с плавающей точкой конвертируются в целые путём отбрасывания значащих цифр справа от точки. Положительные целые числа конвертируются в 16-битное беззнаковое целое число, с максимальным значением 4294967295 или 0xFFFFFFFF; значения большие, чем максимум, отбрасывают лишние значащие цифры до конвертации. Отрицательные целые числа конвертируются в 16-битное беззнаковое целое число, с минимальным значением -2147483648 или 0x800000000; числа имеющие значение меньшие, чем минимум, отбрасывают лишние значащие цифры до конвертации.
Возвращаемое значение интерпретируется как двоичное число, имеющее значение в интервале от -2147483648 до 2147483647.
Для дополнительной информации, смотрите "Старшинство и ассоциативность операторов" в Использовании ActionScript во Флэш .
В следующем примере конвертируется число 65535 в 32-битное, со смещением всех бит на 8 бит вправо :
var x:Number = 65535 >> 8;
trace(x); // выводится 255
Следующий пример имеет тот же результат, что и предыдущий :
var x:Number = 255
Это потому, что десятичное 65535 эквивалентно бинарному 1111111111111111 (шестнадцать едениц), Результатом смещения бинарного 1111111111111111 на 8 бит вправо, будет бинарное 11111111 , что равно десятичному 255.
В следующем примере конвертируется число -1 в 32-битное целое, со смещением бит на один разряд вправо :
var x:Number = -1 >> 1;
trace(x); // выводится -1
Следующий пример имеет тот же результат, что и предыдущий :
var x:Number = -1
Десятичное число -1 эквивалентно бинарному 11111111111111111111111111111111 (тридцать две единицы), Смещение вправо на один бит заставляет игнорировать наименее значимый бит (самый правый), и заполнить единицей наиболее значимый бит (самый левый). Результат - бинарное 11111111111111111111111111111111 (тридцать две единицы), которое представляет 32-битное целое число -1.
>>= (побитовое смещение вправо
и присвоение)
| Посмотреть комментарии LiveDocs | Предыдущая | Следующая | Оглавление | |